package com.xbongbong.paas.model;

import com.xbongbong.paas.domain.entity.PaasAppEntity;
import com.xbongbong.paas.enums.PlatFormEnum;
import com.xbongbong.pro.domain.entity.CloudCodeControlEntity;

import java.util.List;
import java.util.Map;

/**
 * PAAS 应用服务层
 *
 * @author kaka
 * @time 2018-7-30 13:47
 */
public interface CloudCodeControlModel {

    /**
     * 插入实体
     *
     * @param entity 实体
     *
     * @return Integer MyBatis操作结果 1：成功
     */
    Long insert(CloudCodeControlEntity entity);

    /**
     * 批量插入实体
     * @param list
     * @return 返回数据的列表
     */
    void insertBatch(List<CloudCodeControlEntity> list);

    /**
     * 查询实体
     * @param key
     * @param corpid
     * @return
     */
    CloudCodeControlEntity getByKey(Long key, String corpid);

    /**
     * 查询实体
     * @param ccId
     * @param corpid
     * @return
     */
    CloudCodeControlEntity getByCcId(Long ccId, String corpid);

    /**
     *  更新名字和样式、颜色
     * @author wufeng
     * @date 2018/8/6 17:19
     * @param entity
     * @descption
     * @return java.lang.Integer
     */
    Long update(CloudCodeControlEntity entity);

    /**
     * 查询列表，返回值可以自己限定
     * @param param
     * @return
     */
    List<CloudCodeControlEntity> findEntities(Map<String, Object> param);

    /**
     * 通过控件类型，获取控件
     * 若appId、formId存在，则获取appId、formId下的控件，否则获取businessType对应的控件
     * @param corpid
     * @param platFormEnum
     * @param appId
     * @param formId
     * @param businessType
     * @param type
     * @return
     */
    List<CloudCodeControlEntity> getByType(String corpid, PlatFormEnum platFormEnum, Long appId, Long formId, Integer businessType, Integer type);

    /**
     *  查询应用列表数量
     * @author wufeng
     * @date 2018/8/6 16:07
     * @param param
     * @descption
     * @return Integer
     */
    Integer getEntitiesCount(Map<String, Object> param);
    /**
     * 删除实体
     * @author wufeng
     * @date 2018/8/6 17:18
     * @param key id
     * @param corpid 公司id
     * @descption
     * @return java.lang.Integer  mybatis操作结果，1：成功
     */
    Long delete(Long key, String corpid);

    /**
     * 删除
     * @param corpid
     * @param ccId
     * @return
     * 创建时间 2020/9/23 3:10 PM
     * 修改时间 2020/9/23 3:10 PM
     * @author chy
     */
    Long deleteByCcId(String corpid, Long ccId);
}
